package main

import "fmt"

//计算斐波那契数列前n位
func fibonacci(n int, ch chan int) {
	a, b := 0, 1
	for i := 0; i < n; i++ {
		ch <- a //将没位结果放入通道
		a, b = b, a+b
	}
	//计算完成后关闭通道
	close(ch)
}

func main() {
	ch := make(chan int, 6)
	go fibonacci(cap(ch), ch)
	//for range ch结束条件就是关闭通道
	for v := range ch {
		fmt.Println(v)
	}
}
